The present invention relates to analyzing applications or software programs. More specifically, the invention relates to generating a map of the graphical user interface (GUI) for the generation of testing scripts, analysis of user interface correctness and user interface testing coverage.
The earliest software applications had relatively simple text based user interfaces. Typically, the application would prompt the user for the information the application required and the user entered the information via the keyboard. The early user interfaces worked well in their time but it is doubtful that computers would have reached their current wide spread use without the development of the graphical user interface (GUI).
GUIs enable users to start programs and chose commands by pointing to pictorial representations (icons) or lists of menu items on the screen. Typically, the pointing device is a mouse, track ball or touch pad. Thus, GUIs free the user from learning and remembering many complicated commands.
For application developers, GUIs provide an environment that includes standard mechanisms for users to interact with the computer. This allows the developer to concentrate on the application without spending unnecessary time in designing the user interface. It also enables the developer to create programs that handle frequently performed tasks in the same way because the developer can use the same standard mechanisms.
The user friendliness of GUIs, however, comes at a fairly significant cost in other areas. For example, testing a software product with a GUT may exceed half of the total project cost, where a significant portion of the cost of testing can be attributed to the added complexities of the GUI. The steadily increasing cost of testing has created a more urgent need for advancements in testing technology. Unfortunately, software testing tools have thus far failed to keep pace with the needs of the industry.
One standard software testing tool is the code coverage analyzer. With code coverage analyzers, developers typically hire test personnel with substantial programming experience to generate test cases that execute the application under test (AUT). The code coverage analyzers provide an abstract score of code coverage, which allows the test personnel to analyze the code that was not covered and create new test cases to execute that code. Software testing utilizing a code coverage analyzer is generally a very time consuming task. Additionally, for the best results, experienced test personnel may be required, but they are often difficult to find.
Another standard software testing tool is the script automation system. Script automation systems operate by running scripts that were created manually, either by directly typing them in or by recording the steps a user took and then playing them back at a later time using the script. Scripts that are generated manually may require experienced test personnel as with code coverage analyzers. Although the level of skill required for test personnel that execute the program so that a script can be recorded may be less, it still takes a substantial amount of time to generate multiple scripts in this manner. Furthermore, it may be difficult, if not impossible for the test personnel to exercise most all of the aspects of the graphical user interface.
What is needed, therefore, are techniques for mapping the graphical user interfaces of applications. In particular, what is needed is an automated application mapper that generates a map of the graphical user interface of the application, which can be utilized in conjunction with script generators and application testers to test the application.